<script setup lang="ts">
import router from '@/router';
import { getSsoAuthUrl, loginByTicket } from '@/api/sso';
import { useUserStore } from '@/stores/user';
import { UserInfo } from '@/model';

const userStore = useUserStore();

// 如果是首次打开页面，这里会加载两次，第一次是从这里跳转到sso服务端登录页，第二次是携带票据重定向到该页面
onMounted(() => {
  const { ticket, redirect }: { ticket?: string; redirect?: string } =
    router.currentRoute.value.query;
  if (ticket) {
    // 使用票据登录（验票，返回用户信息）
    loginByTicket(ticket).then((res: UserInfo) => {
      userStore.setUserInfo(res);
      // 跳转的目标路由
      if (redirect) {
        router.push({ path: redirect });
      } else {
        router.push({ path: '/' });
      }
    });
  } else {
    // sso服务端登录地址是后端配置的，这里从后端获取并重定向到该页面
    getSsoAuthUrl(window.location.href).then((res: any) => {
      window.location.href = res;
    });
  }
});
</script>

<template>
  <div></div>
</template>

<style scoped></style>
